// 入口函数
$(function () {
    //需求1：定义校验规则
    let form = layui.form
    form.verify({
        //属性是规则名称，值是具体规则
        nickname: [
            /^[\S]{6,12}$/,
            '昵称的长度为1-10的非空字符串'
        ]
    })

    //需求2：获取用户信息 - 封装成函数，后面还要用
    initUserInfo() //函数不调用不执行
    function initUserInfo() {
        axios({
            method: 'get',
            url: '/my/userinfo',
        }).then((res) => {
            console.log(res.data);
            //根据官网，为form表单赋值
            // 判断
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            //内属模块->表单->表单/取值
            //formUserInfo 即 class="layui-form" 所在元素属性
            //lay-filter="" 对应的值
            form.val('formUserInfo', res.data.data)
        })
    }

    //需求3：重置表单
    $('#btnReset').on('click', function (e) {
        //阻止表单默认重置行为
        e.preventDefault()
        //重置渲染表单
        initUserInfo()
    })

    //需求4：提交修改
    $('form').on('submit', function (e) {
        e.preventDefault()
        //发送axios
        axios({
            method: 'post',
            url: '/my/userinfo',
            //大事件参数：a=1&b=2&c=3
            data: $(this).serialize()
        }).then((res) => {
            //判断业务状态码
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            //成功提示
            layer.msg('恭喜您，修改成功！')

            //直接调用无效，因为不是一个window对象，这里的window是user_info页面，要刷新用户名，页面是在index中，index是user_info 的父亲

            //这里必须保证是全局函数，不是局部函数，才能调用
            window.parent.getUserInfo()
        })
    })
})